<extend name="Public/base"/>

<block name="body">
<!-- 标题栏 -->
<div class="main-title">
    <h2>数据备份</h2>
</div>
<!-- /标题栏 -->
<div class="panel panel-default">
    <div class="panel-heading">		
		<div class="fl">
            <button id="export" class="btn btn-default" url="javascript:;" autocomplete="off">立即备份</button>
            <button id="optimize" class="btn btn-default" url="{:U('optimize')}">优化表</button>
            <button id="repair" class="btn btn-default" url="{:U('repair')}">修复表</button>
		</div>		
	</div>
	<!-- /.panel-heading -->

    <!-- 应用列表 -->
    <div class="data-table table-striped">
        <form id="export-form" method="post" action="{:U('export')}">
            <div class="panel-body">
                <div class="table-responsive">		
                    <table class="table table-striped table-bordered table-hover" id="dataTables-export"><!-- 必须设定表格的id == -->
                        <thead>
                            <tr>
                                <th width="48"><input class="check-all" checked="chedked" type="checkbox" value=""></th>
                                <th>表名</th>
                                <th width="120">数据量</th>
                                <th width="120">数据大小</th>
                                <th width="160">创建时间</th>
                                <th width="160">备份状态</th>
                                <th width="120">操作</th>
                            </tr>
                        </thead>
                        <tbody>
                            <volist name="list" id="table">
                                <tr>
                                    <td class="num">
                                        <input class="ids" checked="chedked" type="checkbox" name="tables[]" value="{$table.name}">
                                    </td>
                                    <td>{$table.name}</td>
                                    <td>{$table.rows}</td>
                                    <td>{$table.data_length|format_bytes}</td>
                                    <td>{$table.create_time}</td>
                                    <td class="info">未备份</td>
                                    <td class="action">
                                        <a class="ajax-get no-refresh" href="{:U('optimize?tables='.$table['name'])}">优化表</a>&nbsp;
                                        <a class="ajax-get no-refresh" href="{:U('repair?tables='.$table['name'])}">修复表</a>
                                    </td>
                                </tr>
                            </volist>
                        </tbody>
                    </table>
                </div>
            </div>
        </form>
    </div>
    <!-- /应用列表 -->
</div><!-- /.panel --> 	
</block>

<block name="script">
<script type="text/javascript">
//启用表格功能  id    
$(document).ready(function() {
	$('#dataTables-export').dataTable();
});
</script>
<script type="text/javascript">
(function($){    
        
    var $form = $("#export-form"), $export = $("#export"), tables
        $optimize = $("#optimize"), $repair = $("#repair");
        
        

        
    $optimize.add($repair).click(function(){
                    
        $.post($(this).attr('url'), $form.serialize(), function(data){
            if(data.status){
                updateAlert(data.info,'alert-success');
            } else {
                updateAlert(data.info);
            }
            setTimeout(function(){
                //$('#top-alert').find('button').click();
                $(that).removeClass('disabled').prop('disabled',false);
            },1500);
        }, "json");
        return false;
        
    });           

    $export.click(function(){
        $export.parent().children().addClass("disabled");
        $export.html("正在发送备份请求...");
        $.post(
            $form.attr("action"),
            $form.serialize(),
            function(data){
                if(data.status){
                    tables = data.tables;
                    $export.html(data.info + "开始备份，请不要关闭本页面！");
                    backup(data.tab);
                    window.onbeforeunload = function(){ return "正在备份数据库，请不要关闭！" }
                } else {
                    updateAlert(data.info);
                    $export.parent().children().removeClass("disabled");
                    $export.html("立即备份");
                    setTimeout(function(){
                        //$('#top-alert').find('button').click();
                        $(that).removeClass('disabled').prop('disabled',false);
                    },1500);
                }
            },
            "json"
        );
        return false;
    });

    function backup(tab, status){
        status && showmsg(tab.id, "开始备份...(0%)");
        $.get($form.attr("action"), tab, function(data){
            if(data.status){
                showmsg(tab.id, data.info);

                if(!$.isPlainObject(data.tab)){
                    $export.parent().children().removeClass("disabled");
                    $export.html("备份完成，点击重新备份");
                    window.onbeforeunload = function(){ return null }
                    return;
                }
                backup(data.tab, tab.id != data.tab.id);
            } else {
                updateAlert(data.info,'alert-danger');
                $export.parent().children().removeClass("disabled");
                $export.html("立即备份");
                setTimeout(function(){
                    //$('#top-alert').find('button').click();
                    $(that).removeClass('disabled').prop('disabled',false);
                },1500);
            }
        }, "json");

    }

    function showmsg(id, msg){
        $form.find("input[value=" + tables[id] + "]").closest("tr").find(".info").html(msg);
    }
            
})(jQuery);
</script>
</block>